The present invention relates to the field of computer graphics. In particular, this invention relates to the field of bit mapped computer graphics in which the computer memory stores data for each individual picture element or pixel of the display at memory locations that correspond to the location of that pixel on the display. The field of bit mapped computer graphics has benefitted greatly from the lowered cost per bit of dynamic random access memory (DRAM). The lowered cost per bit of memory enables larger and more complex displays to be formed in the bit mapped mode.
The reduction in the cost per bit of memory and the consequent increase in the capacity of bit mapped computer graphics has led to the need for processing devices which can advantageously use the bit mapped memory in computer graphics applications. In particular, a type of device has arisen which includes the capacity to draw simple figures, such as lines and circles, under the control of the main processor of the computer. In addition, some devices of this type include a limited capacity for bit block transfer (known as BIT-BLT or raster operation) which involves the transfer of image data from one portion of memory to another, together with logical or arithmetic combinations of that data with the data at the destination location within the memory.
These bit-map controllers with hard wired functions for drawing lines and performing other basic graphics operations represent one approach to meeting the demanding performance requirements of bit mapped displays. The built-in algorithms for performing some of the most frequently used graphics operations provides a way of improving overall system performance. However, a useful graphics system often requires many functions in addition to those few which are implemented in such a hard wired controller. These additional required functions must be implemented in software by the primary processor of the computer. Typically these hard wired bit-map controllers permit the processor only limited access to the bit-map memory, thereby limiting the degree to which software can augment the fixed set of functional capacities of the hard wired controller. Accordingly, it would be highly useful to be able to provide a more flexible solution to the problem of controlling the contents of the bit mapped memory, either by providing a more powerful graphics controller or by providing better access to this memory by the system processor, or both.
It is further useful for a user of such a processing device which has the above-described capabilities, or of any general purpose microcomputer or microprocessor, to develop software using an emulation system. The registers internal to microcomputers and microprocessors are generally not addressable on a real-time basis, but often may only be interrogated indirectly, such as via the arithmetic logic unit. Accordingly, in order to perform accurate emulation, a special emulator system must be used. The emulator may consist of "bread-boarded" hardware, or may consist of a total software emulation system executing on a general purpose computing apparatus, which mimics the operation of the emulated microcomputer by providing visibility into the internal microcomputer registers an instruction-by-instruction basis. Emulation can thus be performed by performing a single instruction, and evaluating the contents of the memory of the emulator for comparison against the expected, or desired result.
When the user is developing software for a specific application of the microcomputer, such emulation provides the advantage of immediate evaluation of the results of each instruction in the internal registers of the microcomputer. Without the ability to so evaluate the internal status of these registers, the software developer must analyze the end results of an entire sequence of instructions in order to identify the location and type of mistake in the sequence of program instructions, thereby locating the error indirectly, at best. Alternatively, the user may instead generate and execute a number of sub-programs to assist determining where the original sequence of instructions went wrong. Accordingly, an emulation system is quite valuable in saving man-hours of software development for a given system.
Even with the great value of emulation in saving man-hours in software development and debug, however, an emulation system for a given microcomputer or microprocessor can be quite expensive. The expense results from the design effort required to analyze the microcomputer or microprocessor operation, to design a hardware system which performs the operations of the microcomputer/microprocessor in the same way and acheives the same result, and to add instructions to the original microcomputer/microprocessor instruction set which are directed to analysis of the contents of the emulator's registers and memory. Besides the additional effort and cost required in building (or purchasing) such a system, it is possible that differences in hardware or software between the emulated microcomputer and the emulating system may result not only in additional errors which would not occur in the operation of the emulated microcomputer, but may also result in the failure of the emulating system to detect an error which will occur once the sequence of instructions is presented to the emulated microcomputer/microprocessor. The costs of software errors especially increases if sequences of instructions which contain such errors are incorporated into mask-programmable ROM in the microcomputer devices.
It is therefore an object of this invention to provide a microcomputer which itself may be used in the emulation of instruction sequences.
It is a further object of this invention to provide such a microcomputer which can dump the contents of its internal registers and memory into an external memory device.
It is a further object of this invention to provide such a microcomputer which can load its internal registers and memory with the contents of an external memory device.
It is a further object of this invention to provide such a microcomputer which can perform such loading and dumping on an instruction-by-instruction basis.
It is a further object of this invention to provide such capabilities in a microcomputer which is adapted to performing not only general purpose instructions, but also to performing special purpose graphic instructions.
Other objects and advantages of the invention will become apparent to those of ordinary skill in the art, having reference to the description and drawings provided herein.